perm filename LAMPER.SAI[1,BGB] blob sn#001256 filedate 1972-10-22 generic text, type T, neo UTF8
00100	BEGIN	"LAMPS AD HOC"
00200		REQUIRE "ABBREV[SYS,BGB]" SOURCE_FILE;
00300		REQUIRE "TRIGER[SYS,BGB]" SOURCE_FILE;
00400		DEFINE RA="201.94";
00500		DEFINE RB="239.51";
00600		DEFINE RC="274.18";
00700	
00800		PRELOAD_WITH
00900		437,	438,	439,
01000		437,	438,	440,
01100		436.25,	437.5,	438.5,
01200		428,	428,	0,
01300		426,	426,	0,
01400		420,	418.5,	416.5;
01500		REAL ARRAY ZZ[1:6,1:3];
01600	
01700		REAL ARRAY QQ[1:6,1:3];
01800	
01900		INTEGER I,J,FLG;
     

00100	α DMS converts from degrees, minutes and seconds to radians;
00200	α The argument is in decimal positions DDDMMSS ← ((d*100+m)*100+s;
00300	
00400	REAL PROCEDURE DMS (INTEGER X);
00500	BEGIN	"DMS"
00600		INTEGER D,M,S,Y;
00700		REAL Z;
00800		Y	←	ABS(X);
00900		S	←	Y MOD 100;
01000		Y	←	Y DIV 100;
01100		M	←	Y MOD 100;
01200		D	←	Y DIV 100;
01300		Z	←	D*1745.32925@-5 + M*2908.8821@-7 + S*4848.1368@-9;
01400		IF X<0 THEN Z←-Z;
01500		RETURN(Z);
01600	END	"DMS";
01700	
01800		QQ[1,1]	←	-DMS(125000);
01900		QQ[1,2]	←	-DMS(125000);
02000		QQ[1,3]	←	-DMS(133000);
02100	
02200		QQ[2,1]	←	-DMS(471000);
02300		QQ[2,2]	←	-DMS(471000);
02400		QQ[2,3]	←	-DMS(463000);
02500	
02600		QQ[3,1]	←	-DMS(545000);
02700		QQ[3,2]	←	-DMS(545000);
02800		QQ[3,3]	←	-DMS(553000);
02900	
03000		QQ[4,1]	←	π + DMS(883000);
03100		QQ[4,2]	←	π + DMS(883000);
03200		QQ[4,3]	←	π + DMS(883000);
03300	
03400		QQ[5,1]	←	π + DMS(805000);
03500		QQ[5,2]	←	π + DMS(805000);
03600		QQ[5,3]	←	π + DMS(805000);
03700	
03800		QQ[6,1]	←	π + DMS(415000);
03900		QQ[6,2]	←	π + DMS(415000);
04000		QQ[6,3]	←	π + DMS(423000);
     

00100		OPEN(1,"DSK",0,0,3,0,0,0);
00200		ENTER(1,"LAMPS.FEA",FLG);
00300		FOR I←1 STEP 1 UNTIL 6 DO
00400		FOR J←1 STEP 1 UNTIL 3 DO
00500	BEGIN
00600		REAL R,X,Y,Z;
00700		OUT(1,"LMP");
00800		OUT(1,CVS(I));
00900		OUT(1,CASE J OF("","A","B","C"));
01000		OUT(1,"L   ");
01100		R ← CASE J OF (0,RA,RB,RC);
01200		X ← COS(QQ[I,J])*R;
01300		Y ← SIN(QQ[I,J])*R;
01400		Z ← ZZ[I,J] + 21/12;
01500		OUT(1,CVF(X));OUT(1,"   ");
01600		OUT(1,CVF(Y));OUT(1,"   ");
01700		OUT(1,CVF(Z));OUT(1,"   ");
01800		OUT(1,"0.0  0.0");
01900		OUT(1,↓);
02000	
02100		Z ← Z+14;
02200		OUT(1,"LMP");
02300		OUT(1,CVS(I));
02400		OUT(1,CASE J OF("","A","B","C"));
02500		OUT(1,"H   ");
02600		OUT(1,CVF(X));OUT(1,"   ");
02700		OUT(1,CVF(Y));OUT(1,"   ");
02800		OUT(1,CVF(Z));OUT(1,"   ");
02900		OUT(1,"0.0  0.0");
03000		OUT(1,↓);
03100	END;
03200		RELEASE(1);
03300	END	"LAMPS AD HOC";